//员工职位信息页面的store

import axios from 'axios'
import http from '../../../http/http'
import * as URL from '../../../http/api'

const state = {
    foundJobData:{totalPage:1,jobList:[]},   //查找到的职位信息
    pages:{currentPage:1,pageSize:5},  //当前页码，页容量
    pageState:'showAll',   //页面状态，showAll:展示所有数据，showSelect:展示查询数据
    thisSelectObj:{}, //用于查询的参数
};

const actions = {
    //-------------------员工职位表格部分-------------------
    showJobInfo({commit},obj){
        // console.log(obj);
        return http({
            url:URL.staffPositionsPage,
            method:'post',
            data:obj,
        }).then(res=>{
            // console.log(res);
            if (res.data.code===200){
                commit('saveSelectJob',res.data)
            }
            return res.data;
        });
    },
    //-------------------新增职位部分-------------------
    //查看职位名重复
    isTrueJobName({commit},obj){
        return http({
            url:URL.staffPositionsName,
            method:'post',
            data:obj,
        }).then(res=>{
            // console.log(res);
            return res.data;
        });
    },

    //提交新增职位
    addNewJob({commit},obj){
        // console.log(obj);
        return http({
            url:URL.staffPositionsAddJob,
            method:'post',
            data:obj,
        }).then(res=>{
            // console.log(res);
            return res.data;
        });
    },

    //-------------------查询职位部分-------------------
    //查询
    selectPositionByObj({commit},obj){
        // console.log(obj);
        return http({
            url:URL.staffPositionsSelect,    //记得修改请求地址
            method:'post',
            data:obj,
        }).then(res=>{
            // console.log(res);
            if (res.data.code===200){
                commit('saveSelectJob',res.data);    //将找到的信息存起来
                commit('saveSelectObj',obj);    //保存查询条件
            }
            return res.data;
        });
    },
    //-------------------删除职位部分-------------------
    toDelPosition({commit},obj){
        // console.log(obj);
        return http({
            url:URL.staffPositionsDelJob,    //记得修改请求地址
            method:'post',
            data:obj,
        }).then(res=>{
            // console.log(res);
            return res.data;
        });
    },

    //-------------------编辑职位部分-------------------
    toEditJob({commit},obj){
        // console.log(obj);
        return http({
            url:URL.staffPositionsEditJob,
            method:'post',
            data:obj,
        }).then(res=>{
            // console.log(res);
            return res.data;
        });
    }

};

const mutations = {
    //将查找到的职位信息存起来
    saveSelectJob(state,obj){
        // console.log(obj);
        obj.jobList.forEach(item=>{
            if (item.createTime!==null&&item.createTime!==''){
                item.createTime=new Date(item.createTime).format('yyyy-MM-dd');
            }
            if (item.updateTime!==null&&item.updateTime!==''){
                item.updateTime=new Date(item.updateTime).format('yyyy-MM-dd');
            }
        });
        state.foundJobData.jobList=obj.jobList;
        if(obj.totalPage===undefined){
            // 展示查询数据的情况
            state.foundJobData.totalPage = Math.ceil(obj.jobList.length/state.pages.pageSize);
            state.pageState='showSelect';
        } else{
            // 展示所有数据的情况
            state.foundJobData.totalPage=obj.totalPage;
            state.pageState='showAll';
        }
    },
    //保存条件查询条件（用于分页的页面点击再次发起请求）
    saveSelectObj(state,obj){
        state.thisSelectObj=obj;
    },
};

export default{
    state,
    actions,
    mutations
}